home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
midi
/
justplay.lha
/
JustPlay
/
src
/
gcmacros.i
next >
Wrap
Text File
|
1994-08-04
|
3KB
|
189 lines
**
** $VER: gcmacros.i (14/02/94)
**
** GC Customized Macros
**
** (C) Copyright 1994 The Beet Research
** All rights reserved.
**
IFND BDGMACROS_I
BDGMACROS_I SET 1
; for calling exec once (saves a6)
sys MACRO ; syntax: liboffset
move.l a6,-(sp)
move.l 4.w,a6
jsr _LVO\1(a6)
move.l (sp)+,a6
ENDM
; for calling library functions
call MACRO ; syntax: liboffset,[libbase]
IFNC '\2',''
move.l a6,-(sp)
move.l _\2Base(pc),a6
jsr _LVO\1(a6)
move.l (sp)+,a6
ELSE
jsr _LVO\1(a6)
ENDC
ENDM
; jumps to library function
calljmp MACRO ; syntax: liboffset
jmp _LVO\1(a6)
ENDM
; sets library base
setbase MACRO ; syntax: libbase
move.l _\1Base(pc),a6
ENDM
; sets exec base
setexec MACRO ; syntax: none
move.l 4.w,a6
ENDM
; clears data register
cld MACRO ; syntax: Dx
moveq #0,\1
ENDM
; clears address register
cla MACRO ; syntax: Ax
sub.l \1,\1
ENDM
; opens library with version care or not
openlib MACRO ; syntax: libname,[libversion]
lea \1(pc),a1
IFNC '\2',''
IF \2<$7f
moveq #\2,d0
ELSE
move.l #\2,d0
ENDC
ELSE
moveq #0,d0
ENDC
jsr _LVOOpenLibrary(a6)
ENDM
; closes library safe (checks if it was opened)
clslib MACRO ; syntax: libbase
move.l _\1Base(pc),a1
cmp.l #0,a1
beq.s .lno\1
jsr _LVOCloseLibrary(a6)
.lno\1
ENDM
; tests address register; if it's equal 0 jumps
tstabeq MACRO ; syntax: Ax,<label>
cmpa.l #0,\1
beq.s \2
ENDM
IFD LIBRARIES_REQTOOLS_I
; allocs reqtools.library's requester
allocreq MACRO
moveq.l #\1,d0 ; syntax: type, place to store ptr
sub.l a0,a0
call rtAllocRequestA
move.l d0,\2
ENDM
; frees requester safe
freereq MACRO
move.l \1(pc),a1 ; syntax: ptr
cmp.l #0,a1
beq.s .rno\1
call rtFreeRequest
.rno\1
ENDM
ENDC
IFD INTUITION_INTUITION_I
; activates gadget
actgad MACRO ; syntax: gadget,window
move.l \1,a0
move.l \2(pc),a1
sub.l a2,a2
call ActivateGadget,Intuition
ENDM
ENDC
IFD LIBRARIES_GADTOOLS_I
; changes gadtools.library' gadget
gadchg MACRO ; syntax: gad,win,taglist
move.l \1,a0
move.l \2(pc),a1
sub.l a2,a2
call GT_SetGadgetAttrsA
ENDM
ENDC
IFD LOWERUNDERSCORE_I
ngadchg MACRO ; syntax: gad,win,taglist,[ea]
move.l \1,a0
move.l \2(pc),a1
sub.l a2,a2
IFNC '\3',''
lea \3(pc),a3
ELSE
IFNC '\4',''
move.l \4,a3
ENDC
ENDC
jsr LU_SetGadgetAttrsA
ENDM
ENDC
TRUE = 1
NULL = 0
FALSE = 0
execbase = 4
_SysBase = 4
ENDC